const Koa = require("koa");
const Router = require("@koa/router")
const bodyparser = require("koa-bodyparser")
const parameter = require('koa-parameter');
const app = new Koa();

//检验body
parameter(app)

//给开发时的错误提供一个良好的提示
const _  = require("lodash")
let options = {
    //obj : koa-json-error给我们返回的错误对象
    //process.env.NODE_ENV : 读到当前环境变量中NODE_ENV的值
    //postFormat : 后置处理器 当前这个函数返回的数据 才是 真正的错误对象
    postFormat: (e, obj) =>
        process.env.NODE_ENV === 'pro' ? _.omit(obj, 'stack') : obj
};
const error = require('koa-json-error')
app.use(error(options))

//注册bodyparser
app.use(bodyparser())

//批量注册
// const routerFn = require("./router/index")
// routerFn(app)
//使用require-directory实现批量注册
const requireDirectory = require('require-directory');
requireDirectory(module, "./router",{visit: (obj)=>{
    if(obj instanceof Router){
        app.use(obj.routes()).use(obj.allowedMethods())
    }
}})
app.listen(8888,"127.0.0.1",()=>{
    console.log("server is running on http://127.0.0.1:8888")
})